
msgid ""
msgstr ""
"Project-Id-Version:  discordpy\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-23 22:41-0400\n"
"PO-Revision-Date: 2020-10-24 02:41+0000\n"
"Last-Translator: \n"
"Language: ja_JP\n"
"Language-Team: Japanese\n"
"Plural-Forms: nplurals=1; plural=0\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.5.3\n"

#: ../../ext/commands/commands.rst:6
msgid "Commands"
msgstr "コマンド"

#: ../../ext/commands/commands.rst:8
msgid ""
"One of the most appealing aspect of the command extension is how easy it "
"is to define commands and how you can arbitrarily nest groups and "
"commands to have a rich sub-command system."
msgstr "コマンド拡張の最も魅力的な機能の一つは、簡単にコマンドが定義でき、かつそのコマンドを好きなようにネスト状にして、豊富なサブコマンドを用意することができる点です。"

#: ../../ext/commands/commands.rst:11
msgid ""
"Commands are defined by attaching it to a regular Python function. The "
"command is then invoked by the user using a similar signature to the "
"Python function."
msgstr "コマンドは、Pythonの関数と関連付けすることによって定義され、同様のシグネチャを使用してユーザーに呼び出されます。"

#: ../../ext/commands/commands.rst:14
msgid "For example, in the given command definition:"
msgstr "例えば、指定されたコマンド定義を使うと次のようになります。"

#: ../../ext/commands/commands.rst:22
msgid "With the following prefix (``$``), it would be invoked by the user via:"
msgstr "Prefixを (``$``) としたとすると、このコマンドは次の用に実行できます。"

#: ../../ext/commands/commands.rst:28
msgid ""
"A command must always have at least one parameter, ``ctx``, which is the "
":class:`.Context` as the first one."
msgstr "コマンドには、少なくとも :class:`.Context` を渡すための引数 ``ctx`` が必要です。"

#: ../../ext/commands/commands.rst:30
msgid ""
"There are two ways of registering a command. The first one is by using "
":meth:`.Bot.command` decorator, as seen in the example above. The second "
"is using the :func:`~ext.commands.command` decorator followed by "
":meth:`.Bot.add_command` on the instance."
msgstr ""
"コマンドを登録するには二通りの方法があります。一つ目は :meth:`.Bot.command` を使用する方法で、二つ目が "
":func:`~ext.commands.command` デコレータを使用して :meth:`.Bot.add_command` "
"でインスタンスにコマンドを追加していく方法です。"

#: ../../ext/commands/commands.rst:34
msgid "Essentially, these two are equivalent: ::"
msgstr "本質的に、これら2つは同等になります: ::"

#: ../../ext/commands/commands.rst:52
msgid ""
"Since the :meth:`.Bot.command` decorator is shorter and easier to "
"comprehend, it will be the one used throughout the documentation here."
msgstr ":meth:`.Bot.command` が簡単かつ理解がしやすいので、ドキュメント上ではこちらを使っています。"

#: ../../ext/commands/commands.rst:55
msgid ""
"Any parameter that is accepted by the :class:`.Command` constructor can "
"be passed into the decorator. For example, to change the name to "
"something other than the function would be as simple as doing this:"
msgstr ""
":class:`.Command` "
"のコンストラクタの引数はデコレータに渡すことで利用できます。例えば、コマンドの名前を関数以外のものへと変更したい場合は以下のように簡単に設定することができます。"

#: ../../ext/commands/commands.rst:65
msgid "Parameters"
msgstr "パラメーター"

#: ../../ext/commands/commands.rst:67
msgid ""
"Since we define commands by making Python functions, we also define the "
"argument passing behaviour by the function parameters."
msgstr "Pythonの関数定義によって、同時にコマンドを定義するので、関数のパラメーターを設定することにより、コマンドの引数受け渡し動作も定義することができます。"

#: ../../ext/commands/commands.rst:70
msgid ""
"Certain parameter types do different things in the user side and most "
"forms of parameter types are supported."
msgstr "特定のパラメータタイプはユーザーサイドで異なる動作を行い、そしてほとんどの形式のパラメータタイプがサポートされています。"

#: ../../ext/commands/commands.rst:73
msgid "Positional"
msgstr "位置引数"

#: ../../ext/commands/commands.rst:75
msgid ""
"The most basic form of parameter passing is the positional parameter. "
"This is where we pass a parameter as-is:"
msgstr "最も基本的な引数は位置パラメーターです。与えられた値をそのまま渡します。"

#: ../../ext/commands/commands.rst:84
msgid ""
"On the bot using side, you can provide positional arguments by just "
"passing a regular string:"
msgstr "Botの使用者側は、通常の文字列を渡すだけで位置引数に値を渡すことができます。"

#: ../../ext/commands/commands.rst:88
msgid "To make use of a word with spaces in between, you should quote it:"
msgstr "間に空白を含む文字列を渡す場合は、文字列を引用符で囲む必要があります。"

#: ../../ext/commands/commands.rst:92
msgid ""
"As a note of warning, if you omit the quotes, you will only get the first"
" word:"
msgstr "引用符を用いなかった場合、最初の文字列のみが渡されます。"

#: ../../ext/commands/commands.rst:96
msgid ""
"Since positional arguments are just regular Python arguments, you can "
"have as many as you want:"
msgstr "位置引数は、Pythonの引数と同じものなので、好きなだけ設定することが可能です。"

#: ../../ext/commands/commands.rst:105
msgid "Variable"
msgstr "可変長引数"

#: ../../ext/commands/commands.rst:107
msgid ""
"Sometimes you want users to pass in an undetermined number of parameters."
" The library supports this similar to how variable list parameters are "
"done in Python:"
msgstr "場合によっては、可変長のパラメーターを設定したい場合もあるでしょう。このライブラリはPythonの可変長パラメーターと同様にこれをサポートしています。"

#: ../../ext/commands/commands.rst:116
msgid ""
"This allows our user to accept either one or many arguments as they "
"please. This works similar to positional arguments, so multi-word "
"parameters should be quoted."
msgstr "これによって一つ、あるいは複数の引数を受け取ることができます。ただし、引数を渡す際の挙動は位置引数と同様のため、複数の単語を含む文字列は引用符で囲む必要があります。"

#: ../../ext/commands/commands.rst:119
msgid "For example, on the bot side:"
msgstr "例えば、Bot側ではこのように動きます。"

#: ../../ext/commands/commands.rst:123
msgid ""
"If the user wants to input a multi-word argument, they have to quote it "
"like earlier:"
msgstr "複数単語の文字列を渡す際は、引用符で囲んでください。"

#: ../../ext/commands/commands.rst:127
msgid ""
"Do note that similar to the Python function behaviour, a user can "
"technically pass no arguments at all:"
msgstr "Pythonの振る舞いと同様に、ユーザーは引数なしの状態を技術的に渡すことができます。"

#: ../../ext/commands/commands.rst:132
msgid ""
"Since the ``args`` variable is a :class:`py:tuple`, you can do anything "
"you would usually do with one."
msgstr ""

#: ../../ext/commands/commands.rst:136
msgid "Keyword-Only Arguments"
msgstr "キーワード引数"

#: ../../ext/commands/commands.rst:138
msgid ""
"When you want to handle parsing of the argument yourself or do not feel "
"like you want to wrap multi-word user input into quotes, you can ask the "
"library to give you the rest as a single argument. We do this by using a "
"**keyword-only argument**, seen below:"
msgstr "引数の構文解析を自分で行う場合や、複数単語の入力を引用符で囲む必要のないようにしたい場合は、渡された値を単一の引数として受け取るようにライブラリに求めることができます。以下のコードのようにキーワード引数のみを使用することでこれが可能になります。"

#: ../../ext/commands/commands.rst:150
msgid "You can only have one keyword-only argument due to parsing ambiguities."
msgstr "解析が曖昧になるため、一つのキーワードのみの引数しか扱えません。"

#: ../../ext/commands/commands.rst:152
msgid "On the bot side, we do not need to quote input with spaces:"
msgstr "Bot側では、スペースを含む入力を引用符で囲む必要がありません:"

#: ../../ext/commands/commands.rst:156
msgid "Do keep in mind that wrapping it in quotes leaves it as-is:"
msgstr "引用符で囲んだ場合、消えずに残るので注意してください:"

#: ../../ext/commands/commands.rst:160
msgid ""
"By default, the keyword-only arguments are stripped of white space to "
"make it easier to work with. This behaviour can be toggled by the "
":attr:`.Command.rest_is_raw` argument in the decorator."
msgstr ""
"通常、キーワード引数は利便性のために空白文字で分割されます。この動作はデコレータの引数として "
":attr:`.Command.rest_is_raw` を使うことで切り替えることが可能です。"

#: ../../ext/commands/commands.rst:166
msgid "Invocation Context"
msgstr "呼び出しコンテクスト"

#: ../../ext/commands/commands.rst:168
msgid ""
"As seen earlier, every command must take at least a single parameter, "
"called the :class:`~ext.commands.Context`."
msgstr "前述の通り、すべてのコマンドは必ず :class:`~ext.commands.Context` と呼ばれるパラメータを受け取らなければいけません。"

#: ../../ext/commands/commands.rst:170
msgid ""
"This parameter gives you access to something called the \"invocation "
"context\". Essentially all the information you need to know how the "
"command was executed. It contains a lot of useful information:"
msgstr "このパラメータにより、「呼び出しコンテクスト」というものにアクセスできます。言うなればコマンドがどのように実行されたのかを知るのに必要な基本的情報です。これにはたくさんの有用な情報が含まれています。"

#: ../../ext/commands/commands.rst:173
msgid ":attr:`.Context.guild` to fetch the :class:`Guild` of the command, if any."
msgstr "存在する場合に限り、コマンドの :class:`Guild` を取得できる :attr:`.Context.guild` 。"

#: ../../ext/commands/commands.rst:174
msgid ":attr:`.Context.message` to fetch the :class:`Message` of the command."
msgstr "コマンドの :class:`Message` を取得できる :attr:`.Context.message` 。"

#: ../../ext/commands/commands.rst:175
msgid ""
":attr:`.Context.author` to fetch the :class:`Member` or :class:`User` "
"that called the command."
msgstr ""
"コマンドを実行した :class:`Member` あるいは :class:`User` を取得できる "
":attr:`.Context.author` 。"

#: ../../ext/commands/commands.rst:176
msgid ""
":meth:`.Context.send` to send a message to the channel the command was "
"used in."
msgstr "コマンドが実行されたチャンネルにメッセージを送信する :meth:`.Context.send` 。"

#: ../../ext/commands/commands.rst:178
msgid ""
"The context implements the :class:`abc.Messageable` interface, so "
"anything you can do on a :class:`abc.Messageable` you can do on the "
":class:`~ext.commands.Context`."
msgstr ""
"コンテクストは :class:`abc.Messageable` インタフェースを実装しているため、 "
":class:`abc.Messageable` 上でできることは :class:`~ext.commands.Context` "
"上でも行うことが可能です。"

#: ../../ext/commands/commands.rst:182
msgid "Converters"
msgstr "コンバータ"

#: ../../ext/commands/commands.rst:184
msgid ""
"Adding bot arguments with function parameters is only the first step in "
"defining your bot's command interface. To actually make use of the "
"arguments, we usually want to convert the data into a target type. We "
"call these :ref:`ext_commands_api_converters`."
msgstr ""
"Botの引数を関数のパラメータとして設定するのは、Botのコマンドインタフェースを定義する第一歩です。引数を実際に扱うには、大抵の場合、データを目的の型へとと変換する必要があります。私達はこれを"
" :ref:`ext_commands_api_converters` と呼んでいます。"

#: ../../ext/commands/commands.rst:188
msgid "Converters come in a few flavours:"
msgstr "コンバータにはいくつかの種類があります:"

#: ../../ext/commands/commands.rst:190
msgid ""
"A regular callable object that takes an argument as a sole parameter and "
"returns a different type."
msgstr "引数を一つのパラメータとして受け取り、異なる型として返す、通常の呼び出し可能オブジェクト。"

#: ../../ext/commands/commands.rst:192
msgid ""
"These range from your own function, to something like :class:`bool` or "
":class:`int`."
msgstr "これらにはあなたの作った関数、 :class:`bool` や :class:`int` といったものまで含まれます。"

#: ../../ext/commands/commands.rst:194
msgid "A custom class that inherits from :class:`~ext.commands.Converter`."
msgstr ":class:`~ext.commands.Converter` を継承したカスタムクラス。"

#: ../../ext/commands/commands.rst:197
msgid "Basic Converters"
msgstr "基本的なコンバーター"

#: ../../ext/commands/commands.rst:199
msgid ""
"At its core, a basic converter is a callable that takes in an argument "
"and turns it into something else."
msgstr "基本的なコンバーターは、中核をなすものであり、受け取った引数を別のものへと変換します。"

#: ../../ext/commands/commands.rst:201
msgid ""
"For example, if we wanted to add two numbers together, we could request "
"that they are turned into integers for us by specifying the converter:"
msgstr "例えば、二つの値を加算したい場合、コンバーターを指定することにより、受け取った値を整数型へ変換するように要求できます。"

#: ../../ext/commands/commands.rst:210
msgid ""
"We specify converters by using something called a **function "
"annotation**. This is a Python 3 exclusive feature that was introduced in"
" :pep:`3107`."
msgstr ""
"コンバーターの指定には関数アノテーションというもの用います。これは :pep:`3107` にて追加された Python 3 "
"にのみ実装されている機能です。"

#: ../../ext/commands/commands.rst:213
msgid ""
"This works with any callable, such as a function that would convert a "
"string to all upper-case:"
msgstr "これは、文字列をすべて大文字に変換する関数などといった、任意の呼び出し可能関数でも動作します。"

#: ../../ext/commands/commands.rst:225
msgid "bool"
msgstr "論理型"

#: ../../ext/commands/commands.rst:227
#, fuzzy
msgid ""
"Unlike the other basic converters, the :class:`bool` converter is treated"
" slightly different. Instead of casting directly to the :class:`bool` "
"type, which would result in any non-empty argument returning ``True``, it"
" instead evaluates the argument as ``True`` or ``False`` based on its "
"given content:"
msgstr ""
"他の基本的なコンバーターとは異なり、 :class:`bool` のコンバーターは若干異なる扱いになります。 :class:`bool` "
"型に直接キャストする代わりに、与えられた値に基づいて ``True`` か ``False`` を返します。"

#: ../../ext/commands/commands.rst:239
msgid "Advanced Converters"
msgstr "応用的なコンバータ"

#: ../../ext/commands/commands.rst:241
msgid ""
"Sometimes a basic converter doesn't have enough information that we need."
" For example, sometimes we want to get some information from the "
":class:`Message` that called the command or we want to do some "
"asynchronous processing."
msgstr ""
"場合によっては、基本的なコンバータを動かすのに必要な情報が不足していることがあります。例えば、実行されたコマンドの "
":class:`Message` から情報を取得したい場合や、非同期処理を行いたい場合です。"

#: ../../ext/commands/commands.rst:244
msgid ""
"For this, the library provides the :class:`~ext.commands.Converter` "
"interface. This allows you to have access to the :class:`.Context` and "
"have the callable be asynchronous. Defining a custom converter using this"
" interface requires overriding a single method, "
":meth:`.Converter.convert`."
msgstr ""
"そういった用途のために、このライブラリは :class:`~ext.commands.Converter` "
"インタフェースを提供します。これによって :class:`.Context` "
"にアクセスが可能になり、また、呼び出し可能関数を非同期にもできるようになります。このインタフェースを使用して、カスタムコンバーターを定義したい場合は"
" :meth:`.Converter.convert` をオーバーライドしてください。"

#: ../../ext/commands/commands.rst:248
msgid "An example converter:"
msgstr "コンバーターの例"

#: ../../ext/commands/commands.rst:263
msgid ""
"The converter provided can either be constructed or not. Essentially "
"these two are equivalent:"
msgstr "コンバーターはインスタンス化されていなくても構いません。以下の例の二つのは同じ処理になります。"

#: ../../ext/commands/commands.rst:277
msgid ""
"Having the possibility of the converter be constructed allows you to set "
"up some state in the converter's ``__init__`` for fine tuning the "
"converter. An example of this is actually in the library, "
":class:`~ext.commands.clean_content`."
msgstr ""
"コンバーターをインスタンス化する可能性がある場合、コンバーターの調整を行うために ``__init__`` "
"で何かしらの状態を設定することが出来ます。この例としてライブラリに実際に存在する "
":class:`~ext.commands.clean_content` があります。"

#: ../../ext/commands/commands.rst:293
msgid ""
"If a converter fails to convert an argument to its designated target "
"type, the :exc:`.BadArgument` exception must be raised."
msgstr "コンバーターが渡された引数を指定の型に変換できなかった場合は :exc:`.BadArgument` を発生させてください。"

#: ../../ext/commands/commands.rst:297
msgid "Inline Advanced Converters"
msgstr "埋込み型の応用的なコンバーター"

#: ../../ext/commands/commands.rst:299
msgid ""
"If we don't want to inherit from :class:`~ext.commands.Converter`, we can"
" still provide a converter that has the advanced functionalities of an "
"advanced converter and save us from specifying two types."
msgstr ""
":class:`~ext.commands.Converter` "
"を継承したくない場合のために、応用的なコンバータの高度な機能を備えたコンバータを提供しています。これを使用することで２つのクラスを作成する必要がなくなります。"

#: ../../ext/commands/commands.rst:302
msgid ""
"For example, a common idiom would be to have a class and a converter for "
"that class:"
msgstr "例えば、一般的な書き方だと、クラスとそのクラスへのコンバーターを定義します:"

#: ../../ext/commands/commands.rst:328
msgid ""
"This can get tedious, so an inline advanced converter is possible through"
" a ``classmethod`` inside the type:"
msgstr ""
"これでは面倒に感じてしまうこともあるでしょう。しかし、埋込み型の応用的なコンバーターは ``classmethod`` "
"としてクラスへ埋め込むことが可能です:"

#: ../../ext/commands/commands.rst:355
msgid "Discord Converters"
msgstr "Discord コンバーター"

#: ../../ext/commands/commands.rst:357
msgid ""
"Working with :ref:`discord_api_models` is a fairly common thing when "
"defining commands, as a result the library makes working with them easy."
msgstr ""
":ref:`discord_api_models` "
"を使用して作業を行うのは、コマンドを定義する際には一般的なことです。そのため、このライブラリでは簡単に作業が行えるようになっています。"

#: ../../ext/commands/commands.rst:360
msgid ""
"For example, to receive a :class:`Member` you can just pass it as a "
"converter:"
msgstr "例えば、 :class:`Member` を受け取るには、これをコンバーターとして渡すだけです。"

#: ../../ext/commands/commands.rst:368
msgid ""
"When this command is executed, it attempts to convert the string given "
"into a :class:`Member` and then passes it as a parameter for the "
"function. This works by checking if the string is a mention, an ID, a "
"nickname, a username + discriminator, or just a regular username. The "
"default set of converters have been written to be as easy to use as "
"possible."
msgstr ""
"このコマンドが実行されると、与えられた文字列を :class:`Member` "
"に変換して、それを関数のパラメーターとして渡します。これは文字列がメンション、ID、ニックネーム、ユーザー名 + "
"Discordタグ、または普通のユーザー名かどうかをチェックすることで機能しています。デフォルトで定義されているコンバーターは、できるだけ簡単に使えるように作られています。"

#: ../../ext/commands/commands.rst:372
msgid "A lot of disnake models work out of the gate as a parameter:"
msgstr "Discordモデルの多くがコンバーターとして動作します。"

#: ../../ext/commands/commands.rst:374 ../../ext/commands/commands.rst:396
msgid ":class:`Member`"
msgstr ":class:`Member`"

#: ../../ext/commands/commands.rst:375 ../../ext/commands/commands.rst:400
msgid ":class:`User`"
msgstr ":class:`User`"

#: ../../ext/commands/commands.rst:376 ../../ext/commands/commands.rst:402
msgid ":class:`TextChannel`"
msgstr ":class:`TextChannel`"

#: ../../ext/commands/commands.rst:377 ../../ext/commands/commands.rst:404
msgid ":class:`VoiceChannel`"
msgstr ":class:`VoiceChannel`"

#: ../../ext/commands/commands.rst:378 ../../ext/commands/commands.rst:406
msgid ":class:`CategoryChannel`"
msgstr ":class:`CategoryChannel`"

#: ../../ext/commands/commands.rst:379 ../../ext/commands/commands.rst:408
msgid ":class:`Role`"
msgstr ":class:`Role`"

#: ../../ext/commands/commands.rst:380
msgid ":class:`Message` (since v1.1)"
msgstr ":class:`Message` (v1.1 から)"

#: ../../ext/commands/commands.rst:381 ../../ext/commands/commands.rst:410
msgid ":class:`Invite`"
msgstr ":class:`Invite`"

#: ../../ext/commands/commands.rst:382 ../../ext/commands/commands.rst:412
msgid ":class:`Game`"
msgstr ":class:`Game`"

#: ../../ext/commands/commands.rst:383 ../../ext/commands/commands.rst:414
msgid ":class:`Emoji`"
msgstr ":class:`Emoji`"

#: ../../ext/commands/commands.rst:384 ../../ext/commands/commands.rst:416
msgid ":class:`PartialEmoji`"
msgstr ":class:`PartialEmoji`"

#: ../../ext/commands/commands.rst:385 ../../ext/commands/commands.rst:418
msgid ":class:`Colour`"
msgstr ":class:`Colour`"

#: ../../ext/commands/commands.rst:387
msgid ""
"Having any of these set as the converter will intelligently convert the "
"argument to the appropriate target type you specify."
msgstr "これらをコンバーターとして設定すると、引数を指定した型へとインテリジェントに変換します。"

#: ../../ext/commands/commands.rst:390
msgid ""
"Under the hood, these are implemented by the "
":ref:`ext_commands_adv_converters` interface. A table of the equivalent "
"converter is given below:"
msgstr ""
"これらは :ref:`ext_commands_adv_converters` "
"インタフェースによって実装されています。コンバーターとクラスの関係は以下の通りです。"

#: ../../ext/commands/commands.rst:394
msgid "Discord Class"
msgstr "Discord クラス"

#: ../../ext/commands/commands.rst:394
msgid "Converter"
msgstr "コンバーター"

#: ../../ext/commands/commands.rst:396
msgid ":class:`~ext.commands.MemberConverter`"
msgstr ":class:`~ext.commands.MemberConverter`"

#: ../../ext/commands/commands.rst:398
msgid ":class:`Message`"
msgstr ":class:`Message`"

#: ../../ext/commands/commands.rst:398
msgid ":class:`~ext.commands.MessageConverter`"
msgstr ":class:`~ext.commands.MessageConverter`"

#: ../../ext/commands/commands.rst:400
msgid ":class:`~ext.commands.UserConverter`"
msgstr ":class:`~ext.commands.UserConverter`"

#: ../../ext/commands/commands.rst:402
msgid ":class:`~ext.commands.TextChannelConverter`"
msgstr ":class:`~ext.commands.TextChannelConverter`"

#: ../../ext/commands/commands.rst:404
msgid ":class:`~ext.commands.VoiceChannelConverter`"
msgstr ":class:`~ext.commands.VoiceChannelConverter`"

#: ../../ext/commands/commands.rst:406
msgid ":class:`~ext.commands.CategoryChannelConverter`"
msgstr ":class:`~ext.commands.CategoryChannelConverter`"

#: ../../ext/commands/commands.rst:408
msgid ":class:`~ext.commands.RoleConverter`"
msgstr ":class:`~ext.commands.RoleConverter`"

#: ../../ext/commands/commands.rst:410
msgid ":class:`~ext.commands.InviteConverter`"
msgstr ":class:`~ext.commands.InviteConverter`"

#: ../../ext/commands/commands.rst:412
msgid ":class:`~ext.commands.GameConverter`"
msgstr ":class:`~ext.commands.GameConverter`"

#: ../../ext/commands/commands.rst:414
msgid ":class:`~ext.commands.EmojiConverter`"
msgstr ":class:`~ext.commands.EmojiConverter`"

#: ../../ext/commands/commands.rst:416
msgid ":class:`~ext.commands.PartialEmojiConverter`"
msgstr ":class:`~ext.commands.PartialEmojiConverter`"

#: ../../ext/commands/commands.rst:418
msgid ":class:`~ext.commands.ColourConverter`"
msgstr ":class:`~ext.commands.ColourConverter`"

#: ../../ext/commands/commands.rst:421
msgid ""
"By providing the converter it allows us to use them as building blocks "
"for another converter:"
msgstr "コンバーターを継承することで、他のコンバーターの一部として使うことができます:"

#: ../../ext/commands/commands.rst:438
msgid "Special Converters"
msgstr "特殊なコンバーター"

#: ../../ext/commands/commands.rst:440
msgid ""
"The command extension also has support for certain converters to allow "
"for more advanced and intricate use cases that go beyond the generic "
"linear parsing. These converters allow you to introduce some more relaxed"
" and dynamic grammar to your commands in an easy to use manner."
msgstr "コマンド拡張機能は一般的な線形解析を超える、より高度で複雑なユースケースに対応するため、特殊なコンバータをサポートしています。これらのコンバータは、簡単な方法でコマンドに更に容易で動的な文法の導入を可能にします。"

#: ../../ext/commands/commands.rst:445
msgid "typing.Union"
msgstr "typing.Union"

#: ../../ext/commands/commands.rst:447
msgid ""
"A :data:`typing.Union` is a special type hint that allows for the command"
" to take in any of the specific types instead of a singular type. For "
"example, given the following:"
msgstr ":data:`typing.Union` はコマンドが単数の型の代わりに、複数の特定の型を取り込める特殊な型ヒントです。例えば:"

#: ../../ext/commands/commands.rst:459
msgid ""
"The ``what`` parameter would either take a :class:`disnake.TextChannel` "
"converter or a :class:`disnake.Member` converter. The way this works is "
"through a left-to-right order. It first attempts to convert the input to "
"a :class:`disnake.TextChannel`, and if it fails it tries to convert it to"
" a :class:`disnake.Member`. If all converters fail, then a special error "
"is raised, :exc:`~ext.commands.BadUnionArgument`."
msgstr ""
"``what`` パラメータには :class:`disnake.TextChannel` コンバーターか "
":class:`disnake.Member` "
"コンバーターのいずれかが用いられます。これは左から右の順で変換できるか試行することになります。最初に渡された値を "
":class:`disnake.TextChannel` へ変換しようと試み、失敗した場合は :class:`disnake.Member` "
"に変換しようとします。すべてのコンバーターで失敗した場合は :exc:`~ext.commands.BadUnionArgument` "
"というエラーが発生します。"

#: ../../ext/commands/commands.rst:464
msgid ""
"Note that any valid converter discussed above can be passed in to the "
"argument list of a :data:`typing.Union`."
msgstr "以前に説明した有効なコンバーターは、すべて :data:`typing.Union` にわたすことが可能です。"

#: ../../ext/commands/commands.rst:467
msgid "typing.Optional"
msgstr "typing.Optional"

#: ../../ext/commands/commands.rst:469
msgid ""
"A :data:`typing.Optional` is a special type hint that allows for \"back-"
"referencing\" behaviour. If the converter fails to parse into the "
"specified type, the parser will skip the parameter and then either "
"``None`` or the specified default will be passed into the parameter "
"instead. The parser will then continue on to the next parameters and "
"converters, if any."
msgstr ""
":data:`typing.Optional` "
"は「後方参照」のような動作をする特殊な型ヒントです。コンバーターが指定された型へのパースに失敗した場合、パーサーは代わりに ``None`` "
"または指定されたデフォルト値をパラメータに渡したあと、そのパラメータをスキップします。次のパラメータまたはコンバータがあれば、そちらに進みます。"

#: ../../ext/commands/commands.rst:473 ../../ext/commands/commands.rst:500
msgid "Consider the following example:"
msgstr "次の例をみてください:"

#: ../../ext/commands/commands.rst:486
msgid ""
"In this example, since the argument could not be converted into an "
"``int``, the default of ``99`` is passed and the parser resumes handling,"
" which in this case would be to pass it into the ``liquid`` parameter."
msgstr ""
"この例では引数を ``int`` に変換することができなかったので、デフォルト値である ``99`` "
"を代入し、パーサーは処理を続行しています。この場合、先程の変換に失敗した引数は ``liquid`` パラメータに渡されます。"

#: ../../ext/commands/commands.rst:491
msgid ""
"This converter only works in regular positional parameters, not variable "
"parameters or keyword-only parameters."
msgstr "このコンバーターは位置パラメータでのみ動作し、可変長パラメータやキーワードパラメータでは機能しません。"

#: ../../ext/commands/commands.rst:494
msgid "Greedy"
msgstr "Greedy"

#: ../../ext/commands/commands.rst:496
msgid ""
"The :data:`~ext.commands.Greedy` converter is a generalisation of the "
":data:`typing.Optional` converter, except applied to a list of arguments."
" In simple terms, this means that it tries to convert as much as it can "
"until it can't convert any further."
msgstr ""
":data:`~ext.commands.Greedy` コンバータは引数にリストが適用される以外は "
":data:`typing.Optional` "
"を一般化したものです。簡単に言うと、与えられた引数を変換ができなくなるまで指定の型に変換しようと試みます。"

#: ../../ext/commands/commands.rst:509
msgid "When invoked, it allows for any number of members to be passed in:"
msgstr "これが呼び出されると、任意の数のメンバーを渡すことができます:"

#: ../../ext/commands/commands.rst:513
msgid ""
"The type passed when using this converter depends on the parameter type "
"that it is being attached to:"
msgstr ""

#: ../../ext/commands/commands.rst:515
msgid ""
"Positional parameter types will receive either the default parameter or a"
" :class:`list` of the converted values."
msgstr ""

#: ../../ext/commands/commands.rst:516
msgid "Variable parameter types will be a :class:`tuple` as usual."
msgstr ""

#: ../../ext/commands/commands.rst:517
msgid ""
"Keyword-only parameter types will be the same as if "
":data:`~ext.commands.Greedy` was not passed at all."
msgstr ""

#: ../../ext/commands/commands.rst:519
msgid ""
":data:`~ext.commands.Greedy` parameters can also be made optional by "
"specifying an optional value."
msgstr ""

#: ../../ext/commands/commands.rst:521
msgid ""
"When mixed with the :data:`typing.Optional` converter you can provide "
"simple and expressive command invocation syntaxes:"
msgstr ""

#: ../../ext/commands/commands.rst:536
msgid "This command can be invoked any of the following ways:"
msgstr ""

#: ../../ext/commands/commands.rst:546
msgid ""
"The usage of :data:`~ext.commands.Greedy` and :data:`typing.Optional` are"
" powerful and useful, however as a price, they open you up to some "
"parsing ambiguities that might surprise some people."
msgstr ""

#: ../../ext/commands/commands.rst:549
msgid ""
"For example, a signature expecting a :data:`typing.Optional` of a "
":class:`disnake.Member` followed by a :class:`int` could catch a member "
"named after a number due to the different ways a "
":class:`~ext.commands.MemberConverter` decides to fetch members. You "
"should take care to not introduce unintended parsing ambiguities in your "
"code. One technique would be to clamp down the expected syntaxes allowed "
"through custom converters or reordering the parameters to minimise "
"clashes."
msgstr ""

#: ../../ext/commands/commands.rst:555
msgid ""
"To help aid with some parsing ambiguities, :class:`str`, ``None``, "
":data:`typing.Optional` and :data:`~ext.commands.Greedy` are forbidden as"
" parameters for the :data:`~ext.commands.Greedy` converter."
msgstr ""

#: ../../ext/commands/commands.rst:561
msgid "Error Handling"
msgstr "エラーハンドリング"

#: ../../ext/commands/commands.rst:563
#, fuzzy
msgid ""
"When our commands fail to parse we will, by default, receive a noisy "
"error in ``stderr`` of our console that tells us that an error has "
"happened and has been silently ignored."
msgstr ""
"コマンドの解析に失敗したとき、通常では煩わしいエラーはエラーの発生を伝えるためにコンソールの ``stderr`` "
"で受け取られ、無視されていました。"

#: ../../ext/commands/commands.rst:566
msgid ""
"In order to handle our errors, we must use something called an error "
"handler. There is a global error handler, called :func:`on_command_error`"
" which works like any other event in the :ref:`disnake-api-events`. This "
"global error handler is called for every error reached."
msgstr ""

#: ../../ext/commands/commands.rst:570
msgid ""
"Most of the time however, we want to handle an error local to the command"
" itself. Luckily, commands come with local error handlers that allow us "
"to do just that. First we decorate an error handler function with "
":meth:`.Command.error`:"
msgstr ""

#: ../../ext/commands/commands.rst:586
msgid ""
"The first parameter of the error handler is the :class:`.Context` while "
"the second one is an exception that is derived from "
":exc:`~ext.commands.CommandError`. A list of errors is found in the "
":ref:`ext_commands_api_errors` page of the documentation."
msgstr ""

#: ../../ext/commands/commands.rst:590
msgid "Checks"
msgstr "チェック"

#: ../../ext/commands/commands.rst:592
msgid ""
"There are cases when we don't want a user to use our commands. They don't"
" have permissions to do so or maybe we blocked them from using our bot "
"earlier. The commands extension comes with full support for these things "
"in a concept called a :ref:`ext_commands_api_checks`."
msgstr ""
"コマンドをユーザーに使ってほしくない場合などがあります。例えば、使用者が権限を持っていない場合や、Botをブロックしている場合などです。コマンド拡張ではこのような機能を"
" :ref:`ext_commands_api_checks` と呼び、完全にサポートしています。"

#: ../../ext/commands/commands.rst:596
msgid ""
"A check is a basic predicate that can take in a :class:`.Context` as its "
"sole parameter. Within it, you have the following options:"
msgstr ""

#: ../../ext/commands/commands.rst:599
msgid "Return ``True`` to signal that the person can run the command."
msgstr ""

#: ../../ext/commands/commands.rst:600
msgid "Return ``False`` to signal that the person cannot run the command."
msgstr ""

#: ../../ext/commands/commands.rst:601
msgid ""
"Raise a :exc:`~ext.commands.CommandError` derived exception to signal the"
" person cannot run the command."
msgstr ""

#: ../../ext/commands/commands.rst:603
msgid ""
"This allows you to have custom error messages for you to handle in the "
":ref:`error handlers <ext_commands_error_handler>`."
msgstr ""

#: ../../ext/commands/commands.rst:606
msgid ""
"To register a check for a command, we would have two ways of doing so. "
"The first is using the :meth:`~ext.commands.check` decorator. For "
"example:"
msgstr ""

#: ../../ext/commands/commands.rst:620
msgid ""
"This would only evaluate the command if the function ``is_owner`` returns"
" ``True``. Sometimes we re-use a check often and want to split it into "
"its own decorator. To do that we can just add another level of depth:"
msgstr ""

#: ../../ext/commands/commands.rst:637
msgid ""
"Since an owner check is so common, the library provides it for you "
"(:func:`~ext.commands.is_owner`):"
msgstr ""

#: ../../ext/commands/commands.rst:647
msgid "When multiple checks are specified, **all** of them must be ``True``:"
msgstr ""

#: ../../ext/commands/commands.rst:663
msgid ""
"If any of those checks fail in the example above, then the command will "
"not be run."
msgstr ""

#: ../../ext/commands/commands.rst:665
msgid ""
"When an error happens, the error is propagated to the :ref:`error "
"handlers <ext_commands_error_handler>`. If you do not raise a custom "
":exc:`~ext.commands.CommandError` derived exception, then it will get "
"wrapped up into a :exc:`~ext.commands.CheckFailure` exception as so:"
msgstr ""

#: ../../ext/commands/commands.rst:683
msgid ""
"If you want a more robust error system, you can derive from the exception"
" and raise it instead of returning ``False``:"
msgstr ""

#: ../../ext/commands/commands.rst:708
msgid ""
"Since having a ``guild_only`` decorator is pretty common, it comes built-"
"in via :func:`~ext.commands.guild_only`."
msgstr ""

#: ../../ext/commands/commands.rst:711
msgid "Global Checks"
msgstr "グローバルチェック"

#: ../../ext/commands/commands.rst:713
msgid ""
"Sometimes we want to apply a check to **every** command, not just certain"
" commands. The library supports this as well using the global check "
"concept."
msgstr ""

#: ../../ext/commands/commands.rst:716
msgid ""
"Global checks work similarly to regular checks except they are registered"
" with the :func:`.Bot.check` decorator."
msgstr ""

#: ../../ext/commands/commands.rst:718
msgid "For example, to block all DMs we could do the following:"
msgstr ""

#: ../../ext/commands/commands.rst:728
msgid ""
"Be careful on how you write your global checks, as it could also lock you"
" out of your own bot."
msgstr ""

#~ msgid ""
#~ "To help aid with some parsing "
#~ "ambiguities, :class:`str`, ``None`` and "
#~ ":data:`~ext.commands.Greedy` are forbidden as "
#~ "parameters for the :data:`~ext.commands.Greedy` "
#~ "converter."
#~ msgstr ""
